#include <strmif.h>
#include <comdef.h>
//#include <event.h>
#include <control.h>
#include <uuids.h>
#include "graphutil.hpp"

class App
{
    App(const App&);
    App& operator=(const App&);
    
public:

    explicit App(HANDLE);
    int operator()(int, wchar_t*[]);
    
private:

    const HANDLE m_hQuit;
    const wchar_t* m_input_filename;
    const wchar_t* m_output_filename;

    int Parse(int arg, wchar_t* argv[]);
    //static bool IsSwitch(const wchar_t*);
    //int ProcessSwitch(const wchar_t**&, const wchar_t* const*);
    
    GraphUtil::IFilterGraphPtr m_pGraph;
    GraphUtil::IMediaSeekingPtr m_pSeek;
    
    int CreateGraph();
    void DestroyGraph();
    int RunGraph();

};
